package model

type NacosMessage struct {
	UserName             string   `json:"userName"`
	Password             string   `json:"password"`
	Ip                   string   `json:"ip"`
	Port                 string   `json:"port"`
	DbName               string   `json:"dbName"`
	WechatUserCorpid     string   `json:"wechatUserCorpid"`
	WechatUserCorpSecret string   `json:"wechatUserCorpSecret"`
	Redis                []string `json:"redis"`
	RedisMaster          string   `json:"redisMaster"`
	RedisPwd             string   `json:"redisPwd"`
	RedisMasterKey       string   `json:"redisMasterKey"`
	Yunweiuserid         []string `json:"yunweiuserid"`
}

type BasePeople struct {
	Name string `json:"name"`
	Age  int    `json:"age"`
}

// 通讯录的token
type UserToken struct {
	Errcode      int    `json:"errcode"`
	Errmsg       string `json:"errmsg"`
	Access_token string `json:"access_token"`
	Expires_in   int    `json:"expires_in"`
}

// 部门详细信息
type DepartmentDetail struct {
	ID   int    `json:"id"`
	Name string `json:"name"`
}

// 企业微信部门返回数据data
type DepartmentOutData struct {
	Errcode    int                `json:"errcode"`
	Errmsg     string             `json:"errmsg"`
	Department []DepartmentDetail `json:"department"`
}

// 部门成员详细信息
type UserDetail struct {
	UserID string `json:"userid"`
	Name   string `json:"name"`
	Mobile string `json:"mobile"`
	Email  string `json:"email"`
}

// 企业微信部门成员返回数据
type DepartmentUserOutData struct {
	Errcode  int          `json:"errcode"`
	Errmsg   string       `json:"errmsg"`
	Userlist []UserDetail `json:"userlist"`
}

//告警格式
type AlertEvent struct {
	SystemAlias         string `json:"systemAlias"`
	Env                 string `json:"env"`
	EventDatasource     string `json:"eventDatasource"`
	EventDatasourceName string `json:"eventDatasourceName"`
	//毫秒
	EventOccurTimestamp int64  `json:"eventOccurTimestamp"`
	EventOccurIp        string `json:"eventOccurIp"`
	AlertContent        string `json:"alertContent"`
	AlertPhrase         string `json:"alertPhrase"`
	Status              int    `json:"status"`
	EventLayer          string `json:"eventLayer"`
	EventCategory       string `json:"eventCategory"`
	EventId             string `json:"eventId"`
	TargetSystemAlias   string `json:"targetSystemAlias"`
	TargetIP            string `json:"targetIP"`
}

type AccessToken struct {
	Code        int    `json:"code"`
	msg         string `json:"msg"`
	AccessToken string `json:"access_token"`
	ExpiresIn   int64  `json:"expires_in"`
}

type Alertsource struct {
	Source              string `json:"source"`
	EventOccurTimestamp int64  `gorm:"column:eventOccurTimestamp" json:"eventOccurTimestamp"`
}

type WeixinTextRequest struct {
	SystemAlias string   `json:"systemAlias"`
	Env         string   `json:"env"`
	ToUsers     []string `json:"tousers"`
	ToPartys    []string `json:"topartys"`
	ToTags      []string `json:"totags"`
	Content     string   `json:"content"`
}

type TextRequest struct {
	ToUser  string `json:"touser"`
	ToParty string `json:"toparty"`
	ToTag   string `json:"totag"`
	MsgType string `json:"msgtype"`
	AgentId int    `json:"agentid"`
	Text    *Text  `json:"text"`
	Safe    int    `json:"safe"`
}
type Text struct {
	Content string `json:"content"`
}

type TextResp struct {
	Code         int    `json:"code"`
	Msg          string `json:"Msg"`
	InvalidUser  string `json:"invaliduser"`
	InvalidParty int64  `json:"invalidparty"`
	InvalidTag   int64  `json:"invalidtag"`
}

//订阅消息
type Alertsubscription struct {
	Sub_id      int    `json:"sub_id"`
	App_id      int    `json:"app_id"`
	Contact_id  int    `json:"contact_id"`
	Way_ids     string `json:"way_ids"`
	Pause       bool   `json:"pause"`
	Focus       bool   `json:"focus"`
	Black_words string `json:"black_words"`
	Count       int    `json:"count"`
}
type CountData struct {
	AppName  string `json:"appName"`
	Username string `json:"username"`
	Count    int    `json:"count"`
}

//订阅信息联系人
type Alertcontact struct {
	Contact_id int    `json:"contact_id"`
	Email      string `json:"email"`
	Phone      string `json:"phone"`
}

//找钢应用的信息
type Zhaoapplication struct {
	App_id int    `json:"app_id"`
	Name   string `json:"name"`
}

//找钢通知方式的信息
type Alertways struct {
	Way_id       int    `json:"way_id"`
	ID           int    `json:"id"`
	Name         string `json:"name"`
	Pause        bool   `json:"pause"`
	Yunwei_pause bool   `json:"yunwei_pause"`
	Count        int    `json:"count"`
}

type Way_inserface struct {
	Datas []Alertways `json:"datas"`
}

type WaysyunweiCount struct {
	Count    int      `json:"count"`
	Waynames []string `json:"waynames"`
}

//通用接口的数据
type UniversalData struct {
	Topic                string   `json:"topic"`
	Caller               string   `json:"caller"`
	Ip                   string   `json:"ip"`
	Receive_mails        []string `json:"receive_mails"`
	Receive_wechat_names []string `json:"receive_wechat_names"`
	Content              string   `json:"content"`
}

type SearchSubscription struct {
	Username string `json:"username"`
	Appname  string `json:"appname"`
}

type This_alert_history struct {
	EventOccurTimestamp int `json:"eventOccurTimestamp"`
	App_id              int `json:"app_id"`
	Contact_id          int `json:"contact_id"`
	Email               int `json:"email"`
	Phone               int `json:"phone"`
}

type Subscription struct {
	Code      int                 `json:"code"`
	Msg       string              `json:"msg"`
	Total     int                 `json:"total"`
	ContactId int                 `json:"contactId"`
	Datas     []Subscription_data `json:"datas"`
}
type Ways struct {
	Way_id int    `json:"id"`
	Name   string `json:"name"`
}
type Black_word_detail struct {
	String string `json:"String"`
}
type Subscription_data struct {
	Subid       int               `json:"subid"`
	AppId       int               `json:"appId"`
	AppName     string            `json:"appName"`
	Pause       bool              `json:"Pause"`
	Focus       bool              `json:"Focus"`
	Black_words Black_word_detail `json:"black_words"`
	Count       int               `json:"count"`
	WayIds      []Ways            `json:"wayIds"`
}

type Sendhistory struct {
	eventOccurTimestamp int64  `json:"eventOccurTimestamp"`
	AppId               int    `json:"app_id"`
	Contact_id          int    `json:"contact_id"`
	Words               string `json:"words"`
	Way_ids             string `json:"way_ids"`
}

type WaysPause struct {
	Pause int    `json:"pause"`
	Name  string `json:"name"`
}

type AddSubscriptionData struct {
	Username string   `json:"username"`
	Appname  string   `json:"appName"`
	Wayids   []string `json:"wayIds"`
}
